OfficeInfoForm = Ext.extend(Ext.Window, {
	formPanel : null,
	constructor : function(_cfg) {
		Ext.applyIf(this, _cfg);
		this.initUIComponents();
		OfficeInfoForm.superclass.constructor.call(this, {
					layout : 'form',
					id : 'OfficeInfoFormWin',
					title : this.title,
					items : this.formPanel,
					border : false,
					width : 800,
					modal : true,
					plain : true,
					buttonAlign : 'center',
					buttons : this.buttons
				});
	},// end of the constructor
	initUIComponents : function() {
		this.title = '新增物业管理处';
		var addMode = true;
		if (this.recId) {
			this.title = '修改物业管理处信息';
			addMode = false;
		}
		this.formPanel = new Ext.FormPanel({
			layout : 'form',
			frame : true,
			id : 'OfficeInfoFormPlnel',
			width : 780,
			items : [{
				xtype : 'fieldset',
				title : '基本信息',
				layout : 'form',
				items : [{
					layout : 'column',
					columnWidth : 0.5,
					defaults : {
						layout : 'form',
						padding : '0 0 0 40px',
						defaults : {
							xtype : 'textfield',
							width : 200
						}
					},
					items : [{
						items : [{
									xtype : 'hidden',
									name  : 'type',
									value : 'office'
								}, {
									xtype : 'hidden',
									id : 'depId',
									name : addMode?'department.parentId':'department.depId',
									value: this.pid
								}, {
									fieldLabel : '管理处编号',
									allowBlank : false,
									id : 'depCode',
									name : 'department.depCode',
									dbValue : '',
									listeners : {
										blur : function(){
											var v = this.getValue();
											if(v.trim()==''||this.dbValue==v){
												return ;
											}
											var c = Ext.getCmp('depCode');
											Ext.Ajax.request({
												url : __ctxPath+ '/system/listDepartment.do?Q_depCode_S_EQ='+v,
												success : function(response,option) {
													var d = eval("("+ response.responseText+ ")");
													if(d.result.length>0){
														Ext.Msg.alert('信息','管理处编号 '+v+' 已经存在.');
														c.setValue(c.dbValue);
													}
												},
												failure : function(){
													Ext.Msg.alert('错误','检查唯一失败，请联系系统管理员.');
													c.setValue('');
												}
											});
										}
									}
								}, {
									fieldLabel : '管理处名称',
									allowBlank : false,
									id : 'depName',
									name : 'department.depName',
									dbValue : '',
									listeners : {
										blur : function(){
											var v = this.getValue();
											if(v.trim()==''||this.dbValue==v){
												return ;
											}
											var n = Ext.getCmp('depName');
											Ext.Ajax.request({
												url : __ctxPath+ '/system/listDepartment.do?Q_depName_S_EQ='+v,
												success : function(response,option) {
													var d = eval("("+ response.responseText+ ")");
													if(d.result.length>0){
														Ext.Msg.alert('信息','管理处名称 '+v+' 已经存在.');
														n.setValue(n.dbValue);
													}
												},
												failure : function(){
													Ext.Msg.alert('错误','检查唯一失败，请联系系统管理员.');
													n.setValue('');
												}
											});
										}
									}
								}, {
									regex : /^((\d{3,4}-)*\d{7,8}(-\d{3,4})*|1\d{10})?$/,
									regexText : '请输入正确的手机或者电话号码',
									fieldLabel : '管理处电话',
									id : 'officeTel',
									name : 'officeTel'
								}]
								
					}, {
						items : [{
									fieldLabel : '管理处负责人',
									id : 'officeBoss',
									maxLength :20,
									maxLengthText :'最多20字',
									name : 'officeBoss'
								}, {
									fieldLabel : '管理处地址',
									id : 'officeAddress',
									maxLength :50,
									maxLengthText :'最多50字',
									name : 'officeAddress'
								}, {
									regex : /^((([0-2][0-3])|([0-1][0-9])):([0-5][0-9])-(([0-2][0-3])|([0-1][0-9])):([0-5][0-9]))?$/,
									regexText : '请输入时间段，如：08:30-18:00',
									fieldLabel : '工作时间',
									id : 'officeWorkingHours',
									name : 'officeWorkingHours'
								}]
					}]
				}]
			}]
		});// end of the formPanel

		if (!addMode) {
			this.formPanel.getForm().load({
				url : __ctxPath + '/system/getDepartment.do?depId='+ this.recId,
				waitMsg : '正在载入数据...',
				success : function(form, action) {
					var json = eval('(' + action.response.responseText+ ')').data;
					Ext.getCmp('depCode').dbValue = json.depCode;
					Ext.getCmp('depName').dbValue = json.depName;
				},
				failure : function(form, action) {
					Ext.ux.Toast.msg('信息', '载入失败');
				}
			});
		}

		this.buttons = [{
			text : '保存',
			iconCls : 'btn-save',
			handler : function() {
				var fp = Ext.getCmp("OfficeInfoFormPlnel");
				if (fp.getForm().isValid()) {
					fp.getForm().submit({
						url : __ctxPath+ '/system/saveDepartment.do',
						method : 'post',
						waitMsg : '正在提交数据...',
						success : function(fp, action) {
							Ext.ux.Toast.msg('操作信息', '成功保存信息！');
							Ext.getCmp('OfficeInfoFormWin').close();
							Ext.getCmp('OfficeInfoGrid').getStore().reload();
						},
						failure : function(fp, action) {
							Ext.MessageBox.show({
										title : '操作信息',
										msg : '保存失败!',
										buttons : Ext.MessageBox.OK,
										icon : 'ext-mb-error'
									});
						}
					});
				}
			}
		}, {
			text : '取消',
			iconCls : 'btn-cancel',
			handler : function() {
				Ext.getCmp('OfficeInfoFormWin').close();
			}
		}]
	}// end of the initUIComponents
});
